-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here

-- local discipline = require("xpera.discipline")
-- discipline.cowboy()

local keymap = vim.keymap
local opts = { noremap = true, silent = true }

keymap.set("n", "S", ":w<CR>") ---在普通模式下 大写S保存
keymap.set("n", "Q", ":q<CR>") ---在普通模式下 大写Q退出
keymap.set("n", "S!", ":w!<CR>") ---大在普通模式下 写S!强制保存
keymap.set("n", "Q!", ":q!<CR>") ---大在普通模式下 写Q!强制退出

keymap.set("n", "<left>", "5<left>") ---在普通模式下 方向键左是向左移动五个字符
keymap.set("n", "<right>", "5<right>") ---在普通模式下 方向键右是向右移动五个字符
keymap.set("n", "<up>", "5<up>") ---在普通模式下 方向键上是向上移动五行
keymap.set("n", "<down>", "5<down>") ---在普通模式下 方向键下是向下移动五行

keymap.set("n", "+", "<C-a>")
keymap.set("n", "-", "<C-x>")

keymap.set("n", "dw", "vb_d") ---在普通模式下 按下dw删除

keymap.set("n", "<C-a>", "gg<S-v>G") ---在普通模式下 ctrl + a 全选

keymap.set("n", "<C-m>", "<C-i>", opts)

keymap.set("n", "te", ":tabedit<Return>", opts) ---在普通模式下 按下te打开新标签
keymap.set("n", "<tab>", ":tabnext<Return>", opts) ---在普通模式下 按下tab切换标签
keymap.set("n", "<s-tab>", ":tabprev<Return>", opts) ---在普通模式下 按下shift + tab 切换标签

keymap.set("n", "ss", ":split<Return>", opts) ---在普通模式下 按下ss竖向分割页面
keymap.set("n", "sv", ":vsplit<Return>", opts) ---在普通模式下 按下sv横向分割页面

keymap.set("n", "sh", "<C-w>h") ---在普通模式下(分割页面时) 按下sh向左跨页面移动光标
keymap.set("n", "sk", "<C-w>k") ---在普通模式下(分割页面时) 按下sk向上跨页面移动光标
keymap.set("n", "sj", "<C-w>j") ---在普通模式下(分割页面时) 按下sj向下跨页面移动光标
keymap.set("n", "sl", "<C-W>l") ---在普通模式下(分割页面时) 按下sl向右跨页面移动光标

keymap.set("n", "<C-w><Left>", "<C-w><") ---
keymap.set("n", "<C-w><right>", "<C-w>>")
keymap.set("n", "<C-w><up>", "<C-w>+")
keymap.set("n", "<C-w><down>", "<C-w>-")

keymap.set("n", "<C-j>", function()
  vim.diagnostic.goto_next()
end, opts)
